{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Monte Carlo Simulation with Python\n",
    "\n",
    "Notebook to accompany article on [Practical Business Python](https://pbpython.com/monte-carlo.html)\n",
    "\n",
    "Update to use numpy for faster loops based on comments [here](https://www.reddit.com/r/Python/comments/arxwkm/monte_carlo_simulation_with_python/)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "sns.set_style('whitegrid')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the variables for the Percent to target based on historical results\n",
    "avg = 1\n",
    "std_dev = .1\n",
    "num_reps = 500\n",
    "num_simulations = 100000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Show an example of calculating the percent to target\n",
    "pct_to_target = np.random.normal(\n",
    "    avg,\n",
    "    std_dev,\n",
    "    size=(num_reps, num_simulations)\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.00168889, 0.84322867, 0.89764919, ..., 1.01640703, 1.20373747,\n",
       "        0.97037204],\n",
       "       [1.028913  , 0.90536114, 0.924947  , ..., 1.04301131, 1.00578572,\n",
       "        0.82234308],\n",
       "       [0.92013836, 0.89966565, 0.9061088 , ..., 0.95344094, 1.04113555,\n",
       "        1.19014847],\n",
       "       ...,\n",
       "       [0.90638344, 0.92727774, 1.06040697, ..., 0.98925006, 0.7699789 ,\n",
       "        1.13980837],\n",
       "       [1.05623333, 0.90113527, 1.17673089, ..., 0.88190302, 0.75553421,\n",
       "        1.01923352],\n",
       "       [1.0517061 , 1.02548497, 1.06281586, ..., 1.01414038, 1.03138342,\n",
       "        1.01631576]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pct_to_target[0:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Another example for the sales target distribution\n",
    "sales_target_values = [75_000, 100_000, 200_000, 300_000, 400_000, 500_000]\n",
    "sales_target_prob = [.3, .3, .2, .1, .05, .05]\n",
    "sales_target = np.random.choice(sales_target_values, p=sales_target_prob, \n",
    "                                size=(num_reps, num_simulations))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 75000, 400000,  75000, ..., 100000, 400000,  75000],\n",
       "       [ 75000, 300000, 200000, ..., 200000, 200000, 500000],\n",
       "       [ 75000,  75000,  75000, ..., 200000, 100000, 300000],\n",
       "       ...,\n",
       "       [ 75000, 100000, 200000, ...,  75000, 200000, 200000],\n",
       "       [ 75000,  75000,  75000, ..., 500000,  75000,  75000],\n",
       "       [ 75000,  75000,  75000, ...,  75000, 100000, 500000]])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sales_target[0:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "commission_percentages = np.take(\n",
    "    np.array([0.02, 0.03, 0.04]),\n",
    "    np.digitize(pct_to_target, bins=[.9, .99, 10])\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.04, 0.02, 0.02, ..., 0.04, 0.04, 0.03],\n",
       "       [0.04, 0.03, 0.03, ..., 0.04, 0.04, 0.02],\n",
       "       [0.03, 0.02, 0.03, ..., 0.03, 0.04, 0.04],\n",
       "       ...,\n",
       "       [0.03, 0.03, 0.04, ..., 0.03, 0.02, 0.04],\n",
       "       [0.04, 0.03, 0.04, ..., 0.02, 0.02, 0.04],\n",
       "       [0.04, 0.04, 0.04, ..., 0.04, 0.04, 0.04]])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "commission_percentages[0:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "total_commissions = (commission_percentages * sales_target).sum(axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "96204.21537404737"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_commissions.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Total_Commissions</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2982500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3003500.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2950250.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2902000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2762500.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Total_Commissions\n",
       "0          2982500.0\n",
       "1          3003500.0\n",
       "2          2950250.0\n",
       "3          2902000.0\n",
       "4          2762500.0"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Show how to create the dataframe\n",
    "df = pd.DataFrame(data={'Total_Commissions': total_commissions})\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f6e5f13d2e8>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEICAYAAACXo2mmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvAOZPmwAAIABJREFUeJzt3XtYFeWiP/DvYiGICILYAjXSLEyOitjBC0KS4FqoyyUgUNt2umVrHpVERD1btPCGlzptb1kpx47bzNx5A1TyeKHkYnq0lFA3lu4kQWVRchOV2+L9/cHP2RK3pc4SkO/neXoe1rtm5n3nnXF9m5l3ZhRCCAEiIiIZmDV3A4iI6OnBUCEiItkwVIiISDYMFSIikg1DhYiIZMNQISIi2TBUqE2aOnUq4uPjH3n+mJgYfPTRRzK2SB5arRb/93//J8uy9u/fjz//+c/S55deegm//PKLLMsGgIEDByInJ0e25VHLoOB9KmRKBw4cwNatW3H16lVYW1ujT58+mD59Ojw8PJq7aa1Kbm4u/Pz80KFDBwCAlZUV+vfvj0mTJsHLy+uRlnXx4kWYm5sbPd9LL72EI0eOoEePHg9VHwBMnDgR48aNQ2ho6EPPS60Lj1TIZLZu3YqVK1di+vTpOHHiBL755hu88cYbSE5Obu6mtVpnzpzBuXPnkJiYiGHDhuHtt9/Gvn37ZK+nqqpK9mVSGyGITKCkpES4u7uLr776qsFpysvLRWxsrPDy8hJeXl4iNjZWlJeXCyGEOHXqlHjllVdEXFycGDp0qPDy8hJHjx4Vx48fFxqNRgwaNEh88skn0rI2bNggZs2aJebOnSvc3d3F2LFjxc8//yw2bdokhg4dKoYPHy7S0tKk6d98802xa9cuIYQQ2dnZ4o9//KN4+eWXxeDBg8Xs2bOFEEJUV1eLFStWiKFDh4qXX35ZjB07Vvz4449CCCH+8pe/iDVr1kjL+/LLL8XIkSPFoEGDxH/8x3+IvLw86bvevXuLL774QqjVauHh4SGWLFkiqqurG63793JyckTv3r1FZWVlrfItW7YIT09PYTAYhBBCjBgxQpw4cUIIIcQPP/wggoKCxMCBA4Wnp6dYuXKlEEIIHx8f0bt3b+Hu7i7c3d3F2bNnxd69e8Xrr78uVqxYIQYNGiTWrFkj9u7dK/7whz/UWo9t27YJX19fMXjwYLF69Wqp3g0bNoi5c+fW2941a9aIPn36iH79+gl3d3exdOlSaXnZ2dnS/jJ//nwxZMgQ8eqrr4qPPvpIWvb9dqxevVp4eHiIESNGiOPHj9e/U1Gz45EKmcS5c+dQXl4OtVrd4DSffPIJfvjhByQmJmL//v04f/48Pv74Y+n73377DeXl5UhNTUVERATeeecd7N+/H3v37sWOHTvw0Ucf1Ton/8033yAgIABnzpyBq6srpkyZgurqaqSmpiI8PBwxMTH1tmP9+vXw8vLCmTNnkJqaijfffBMAkJ6eju+++w6HDx/Gd999h3Xr1sHOzq7O/CdPnsRf//pXrFu3Dunp6ejevTuioqJqTXP8+HHs2bMHiYmJOHToENLS0hqt21gajQa3bt3C1atX63y3YsUKTJo0CWfPnsXRo0cxevRoAMDnn38O4F9HPQMHDgQAZGZmwtnZGd9++y1mzJhRb31Hjx7F3r17ER8fj6+//hp79+5tso1z5syBh4cHYmJicO7cuXq3w/Lly3H79m0cO3YM27dvR2JiYq1lZ2Zm4vnnn8epU6cwdepULFq0CIJn7lskhgqZRFFREezt7Rs9Z3/gwAGEh4fDwcEBnTt3Rnh4OPbv3y99b25ujhkzZqBdu3YYM2YMCgsLMWnSJHTs2BEuLi5wcXHBjz/+KE3v4eGBV155Bebm5hg1ahQKCwsxbdo0af7r16+jpKSkTjvMzc1x48YN5Ofnw9LSUrreY25ujjt37uDnn3+GEAIvvPACVCpVvesRHByMvn37wsLCAlFRUcjIyEBubq40zVtvvQVbW1t069YNQ4YMwaVLlxqt21j321NUVFTvel27dg0FBQWwtraGu7t7k8uaOHEizM3N0b59+3qneeutt2BnZ4du3bph0qRJOHjw4EO1tz4GgwFfffUV5s6di44dO+LZZ59FWFhYrX2hW7dueO2116BUKhEUFIRff/0Vv/3222PXTfJjqJBJ2NnZobCwsNFz8/n5+ejWrZv0uVu3bsjPz6+1DKVSCQDSj5yDg4P0vaWlJe7cuSN9fvC79u3bw97evs78d+/erdOO+fPnQwiBkJAQaLVa7NmzBwDg6emJP/7xj1i2bBmGDRuGd999F6WlpfWuR/fu3aXP1tbWsLOzg16vl8qeeeYZ6W8rKyup3Q3Vbaz7ddR3BLVixQpkZ2dj9OjRCA4OxjfffNPospycnJqsr2vXrtLf3bt3r7W9HlVhYSEqKyvr7AsP9l+XLl2kv62srADUvy2p+TFUyCQGDhwIS0tLHDt2rMFpVCoVbty4IX2+efNmvUcCpvbMM88gNjYW6enpWLp0KZYuXSoNnZ00aRL27duHpKQkZGdnY8uWLXXmV6lUuH79uvT57t27KCoqgqOj42PVbYyjR4/CwcEBzz//fJ3vevbsiTVr1uDkyZN46623EBERgbt370KhUNS7rIbKH3Tz5k3p7xs3bkjby8rKCmVlZdJ3D3MUYW9vj3bt2tXZF4zpP2p5GCpkEjY2NoiIiMCyZctw7Ngx3Lt3D5WVlUhJScH7778PoOaeik8++QQFBQUoKCjARx99BJ1O98TbeujQIeTl5QEAOnXqBIVCATMzM2RmZuKHH35AZWUlrKysYGFhIR35PEin02Hfvn3IyspCRUUF1qxZAzc3Nzz77LOPXHdTfvvtN3z++efYuHEjoqKi6p0nMTERBQUFMDMzg62tLQBAqVSic+fOMDMze6R7RD799FMUFxfj5s2b+OyzzzBmzBgAgKurK86cOYMbN27g9u3b2Lx5c635unTp0mB9SqUSo0aNwtq1a1FaWorr169j69atGDdu3EO3j5qf8YPUiR5SWFgYHBwc8PHHH2PevHmwtrZG3759MX36dADAzJkzcefOHenHY9SoUZg5c+YTb+f58+excuVKlJaWwsHBAYsWLYKzszNyc3OxcuVK5ObmwsLCAt7e3rVuBrzP09MTs2fPxqxZs1BSUoKBAwdi7dq1j1V3QwYNGgQhBKysrNCvXz+sX78ew4cPr3fatLQ0rF69GmVlZejWrRvWrl0LS0tLAMD06dMxYcIEVFVV1Xv01RA/Pz+MHz8epaWlCAoKQkhICADAy8sLY8aMwbhx42Bvb4+33noLX3/9tTTfpEmTsGDBAuzcuRMBAQF45513ai333XffxfLlyzFy5EhYWloiNDQUwcHBRreLWg7e/EhERLLh6S8iIpKNyUKlvLwcISEhGDduHLRaLTZs2AAAWLBgAXx9fREQEICAgABkZWUBAIQQiI2NhVqthk6nw8WLF6VlxcfHQ6PRQKPR1Hpe04ULF6DT6aBWqxEbG8tx60REzc1Ud1VWV1eL0tJSIYQQFRUVIiQkRJw7d0785S9/EYcOHaoz/fHjx8WUKVNEdXW1OHfunAgJCRFCCFFYWCh8fX1FYWGhKCoqEr6+vqKoqEgIIURwcLA4e/asqK6uFlOmTOFdtkREzcxkRyoKhQLW1tYAap4jVFVV1eiQxeTkZAQGBkKhUMDd3R0lJSXIz89Heno6vLy8YGdnh06dOsHLywtpaWnIz89HaWkpBg4cCIVCgcDAQD5TioiomZl09JfBYMD48eNx7do1vPHGGxgwYAB27tyJtWvX4qOPPoKnpyfmzZsHCwsL6PX6WjdfOTk5Qa/X1yl3dHSst/z+9E05e/asUePx26Lq6mqjhrO2ZeyjprGPmtYa++j+//A3xaSholQqkZiYiJKSEoSHh+Onn35CVFQUnnnmGVRWVuLdd99FXFwc3n777XqvhygUiocub4qVlRVcXV0fbYWecllZWeybJrCPmsY+alpr7KP717+b8kSi0tbWFkOGDEFaWhpUKhUUCgUsLCwwfvx4nD9/HkDNkcb9m8AAIC8vDyqVqk65Xq+vt/z+9ERE1HxMFioFBQXSw/vKysrw7bffolevXtKzgoQQOHbsGFxcXAAAvr6+SEhIgBACGRkZsLGxgUqlgre3N9LT01FcXIzi4mKkp6fD29sbKpUK1tbWyMjIgBACCQkJ8PPzM9XqEBGREUx2+is/Px8LFiyAwWCAEAKjRo3CiBEjMGnSJBQWFkIIgT59+mDp0qUAAB8fH6SkpECtVsPKygorV64EUPOgvJkzZ0p37oaHh0sPz1uyZAmio6NRVlaG4cOHN3hnMRERPRlt7o761ngu80lh3zTtae2jyspK5Obm1noo5OMsq127djK06unVkvuoffv2ePbZZ+u0z9h9n8/+IiLk5ubCxsYGPXv2fOzRkffu3ZMeT0/1a6l9JITArVu3kJubW++Tr43Rusa0EZFJlJWVwcHBgcPt2ziFQgEHB4fHOmJlqBARAOOG5NPT73H3A4YKERHJhqFCRHWUVRoeed76rhU8zvKodeGFeqLfKas0oH27um94BGDSkV+N1fuktW+nRM8FSbItL3u1ttHvCwsLMXnyZAA1b7U0MzND586dAQC7d++GhYVFremLiopw6NAhTJgwodHlVlVVYejQofjuu+8anOaf//wnVq1ahWvXrkGpVKJPnz5455134ODgYMSaPR6DwYCJEyfiiy++eKj51q5dC09PTwwdOtRELXt0DBWi35H7B9VYTf3wPs3s7e2RmJgIAPjwww/RoUMHTJkypcHpi4uL8fe//73JUGlKWVkZpk+fjnfeeQc+Pj4AgJMnT6KoqOiJhIpSqXzoQAGAOXPmmKA18mCoEFGL9t///d9S4Lz++uuYOHEi/vrXv+Lq1asICAjAK6+8gunTp2PmzJm4ffs2qqqqEBUVhREjRjS57MTERHh4eEiBAtS8HhqoCZzFixfjH//4B8zNzbFw4UIMGjQIu3fvRkpKCiorK3H58mVMnToVd+/excGDB9G+fXvExcXB1tYWEyZMgJubG86fP4+ioiK899572LRpEy5fvoxRo0YhKiqq1pGUXq9HZGQk7t69C4PBgGXLlsHNzQ3R0dG4dOkShBB47bXXMGnSJMybNw+jRo3CyJEjceLECbz//vuorq7GgAEDEBMTAwsLCwwfPhyhoaFITk6GwWDAhg0b8Pzzz+PkyZNYtWoVFAoFzMzMsGPHDnTo0EG27cVQIaIWKzMzEwcOHMDu3bthMBgQGhqKQYMGYe7cufjll1+ksKmsrMTHH3+Mjh074tatW5gwYYJRoXL58mX069ev3u8+++wztGvXDgcOHMDly5cxbdo0HD58WJovPj4ed+/ehUajQXR0NBISErB8+XLs378fb775JoCaGwm/+OIL/M///A/Cw8Oxb98+2NjYwM/PD1OnTq31Y56YmIgRI0Zg2rRpMBgMKCsrw8WLF1FYWIgDBw4AgPToq/vu3buHhQsXYvv27Xjuuecwd+5c7Nq1S6rfwcEBCQkJ+Oyzz7B161YsW7YMn376KZYvX44BAwbgzp07sLS0fMit0jheqCeiFuu7776DRqOBlZUVOnbsiJEjR+L777+vM50QAh988AF0Oh3+/Oc/4+bNmygoKHisus+ePYuAgAAAgIuLC1QqFa5duwYAGDp0KDp06IAuXbqgQ4cOUoD17t0b169fl5bh6+srlffu3RtdunSBpaUlunbtWuuBuADQv39/7NmzBxs3bsTly5dhbW2N5557DlevXkVsbCzS0tJgY2NTa55//vOf6NGjB5577jkAQGBgIM6cOSN9r9FoAAB9+/aV2vXyyy9j5cqV2L59O0pLS6FUynsdj6FCRC2WsU+RSkxMxO3btxEfH4/ExETY29ujoqKiyflefPFFXLhw4aHrfnDggJmZmfTZzMwMVVVVdaZ7cJr7nw2G2iPiPD09sX37djzzzDOYN28e9u/fD3t7e+zfvx///u//ju3btyMmJsboNj5Yv1KplOqbOXMmli5dirt37yIkJATZ2dmNLuNh8fQXEdVRVmmQdeDAo45sGzRoEGJiYjB16lQYDAYkJydj7dq1sLa2xp07d6Tpbt++DQcHB5ibm+PEiRNGvbAPAAICArBlyxakpqZKD6RNSUlB9+7d4eHhgQMHDmDQoEH45z//iV9//RXPPfcczp0799DrYYzr16/DyckJr7/+OkpLS5GVlQVvb29YWFhg9OjRePbZZ7F48eJa87z44ov45ZdfkJOTA2dnZ+zfvx+DBw9utJ5r166hT58+6NOnD86ePYurV6+iZ8+esq0HQ4WI6nicoc31PdfqUZfn5uYGrVYrPaV8woQJeOmllwAA/fr1g06ng4+PD8LCwjB9+nSMHz8effv2NfpH0srKCps2bcKqVasQGxsLc3NzuLq6YtGiRZg4cSJiYmKg0+lgbm6O9957r87QZjmdPHkSf/vb32Bubo4OHTrgv/7rv3Dz5k0sWrQIQggoFArMmzevTvtXrFiBt99+G9XV1XBzc0NoaGij9Xz66af4/vvvoVAo8NJLL8HLy0vW9eBTiknCvvmXtjakWM5t31IfltiStPQ+qm9/MHYf4TUVIiKSDU9/EdFTLysrCwsWLKhVZmVlhb///e/N1KKnF0OFiABAOm//NHJ1dZXuaaHGPe4VEZ7+IiK0b98et27deuwfFGrd7r+kq3379o+8DB6pEBGeffZZ5Obm4tdff33sZbXkV+W2FC25j+6/TvhRMVSICO3atXvk18f+HkcRNu1p7iOe/iIiItkwVIiISDYmC5Xy8nKEhIRg3Lhx0Gq12LBhAwAgJycHoaGh0Gg0iIyMlJ7PU1FRgcjISKjVaoSGhiI3N1da1ubNm6FWq+Hv74+0tDSpPDU1Ff7+/lCr1YiLizPVqhARkZFMFioWFhbYtm0b9u/fj4SEBKSlpSEjIwMffPABJk+ejCNHjsDW1hZ79uwBUPN2N1tbWxw9ehSTJ0/GBx98AAC4cuUKkpKSkJSUhC1btmDp0qUwGAzS+wa2bNmCpKQkHDx4EFeuXDHV6hARkRFMFioKhQLW1tYAal7pWVVVBYVCgVOnTsHf3x8AEBQUhOTkZADA119/jaCgIACAv78/Tp48CSEEkpOTodVqYWFhAWdnZ/To0QOZmZnIzMxEjx494OzsDAsLC2i1WmlZRETUPEw6+stgMGD8+PG4du0a3njjDTg7O8PW1hbm5jXVOjk5SU8T1ev16Nq1a02jzM1hY2ODwsJC6PV6DBgwQFqmo6OjNI+Tk1Ot8szMzCbbVF5ejqysLNnW8WlSVlbGvoFp30PflKeh/7kfNe1p7iOThopSqURiYiJKSkoQHh6On3/+uc409+/gre+mK4VC0WB5dXV1g8tqjKWl5VM7lO9xPc3DHFuLp6H/uR81rTX2kbEh+ERGf9na2mLIkCHIyMhASUmJ9BKbvLw8qFQqADVHHTdv3gRQc7rs9u3bsLOzg5OTU603pOn1eqhUqgbLiYio+ZgsVAoKCqT3KZeVleHbb7/FCy+8gCFDhkjveY6Pj5det+nr64v4+HgAwOHDhzF06FAoFAr4+voiKSkJFRUVyMnJQXZ2Ntzc3NC/f39kZ2cjJycHFRUVSEpKkpZFRETNw2Snv/Lz87FgwQIYDAYIITBq1CiMGDECL774IubMmYN169bB1dVVeqFMSEgI5s+fD7VajU6dOmHt2rUAat4NPXr0aIwZMwZKpRIxMTHSO5UffCNccHAwXFxcTLU6RERkBL6kiyTsm39pay/pkhP3o6a1xj7iS7qIiOiJY6gQEZFsGCpERCQbhgoREcmGoUJERLJhqBARkWwYKkREJBuGChERyYahQkREsmGoEBGRbBgqREQkG4YKERHJhqFCRESyYagQEZFsGCpERCQbhgoREcmGoUJERLJhqBARkWwYKkREJBuGChERyYahQkREsmGoEBGRbEwWKjdv3sTEiRMxevRoaLVabNu2DQDw4Ycf4pVXXkFAQAACAgKQkpIizbN582ao1Wr4+/sjLS1NKk9NTYW/vz/UajXi4uKk8pycHISGhkKj0SAyMhIVFRWmWh0iIjKCuakWrFQqsWDBAvTt2xelpaUIDg6Gl5cXAGDy5MmYMmVKremvXLmCpKQkJCUlQa/XIywsDIcPHwYALFu2DFu3boWjoyNCQkLg6+uLF198ER988AEmT54MrVaLmJgY7NmzB2+88YapVomIiJpgsiMVlUqFvn37AgA6duyIXr16Qa/XNzh9cnIytFotLCws4OzsjB49eiAzMxOZmZno0aMHnJ2dYWFhAa1Wi+TkZAghcOrUKfj7+wMAgoKCkJycbKrVITK5skpDm6ybni4mO1J5UG5uLrKysjBgwACcPXsWO3bsQEJCAvr164cFCxagU6dO0Ov1GDBggDSPo6OjFEJOTk61yjMzM1FYWAhbW1uYm5tL0zQWWveVl5cjKytL5jV8OpSVlbFvALi6ujZLve3bKdFzQVKz1J29Wivbtud+1LSnuY9MHip37txBREQEFi5ciI4dO2LChAmYOXMmFAoF1q9fj9WrV2PVqlUQQtSZV6FQoLq6ut7y+jRU/iBLS8tm+9Fo6bKystg3bZhc2577UdNaYx8ZG4ImHf1VWVmJiIgI6HQ6aDQaAECXLl2gVCphZmaG0NBQnD9/HkDNkUZeXp40r16vh0qlarDc3t4eJSUlqKqqAgDk5eVBpVKZcnWIiKgJJgsVIQQWLVqEXr16ISwsTCrPz8+X/j527BhcXFwAAL6+vkhKSkJFRQVycnKQnZ0NNzc39O/fH9nZ2cjJyUFFRQWSkpLg6+sLhUKBIUOGSBfz4+Pj4evra6rVISIiI5js9Nf333+PxMRE9O7dGwEBAQCAqKgoHDx4EJcuXQIAdO/eHcuWLQMAuLi4YPTo0RgzZgyUSiViYmKgVCoBADExMZg6dSoMBgOCg4OlIJo/fz7mzJmDdevWwdXVFaGhoaZaHSIiMoLJQsXDwwM//vhjnXIfH58G55kxYwZmzJhR7zz1zefs7Iw9e/Y8XkOJiEg2vKOeiIhkw1AhIiLZMFSIiEg2DBUiIpINQ4WIiGTDUCEiItkwVIiISDYMFSIikg1DhYiIZMNQISIi2TBUiIhINgwVIiKSDUOFiIhkw1AhIiLZMFSoRSqrNDR3E4joEZj8HfVEj6J9OyV6LkhqlrqzV2ubpV6ipwGPVIiISDZGhcpPP/1k6nYQEdFTwKjTX4sXL0ZlZSWCgoKg0+lga2tr6nYREVErZFSo7Ny5E9nZ2di7dy+Cg4Ph5uaG8ePHw8vLy9TtIyKiVsToC/U9e/ZEZGQk+vXrh9jYWPzjH/+AEAJRUVHQaDSmbCMREbUSRoXKpUuXsG/fPqSkpGDYsGHYtGkT+vbtC71ejz/84Q8MFSIiAmDkhfrly5fj3/7t35CYmIjFixejb9++AABHR0fMnj273nlu3ryJiRMnYvTo0dBqtdi2bRsAoKioCGFhYdBoNAgLC0NxcTEAQAiB2NhYqNVq6HQ6XLx4UVpWfHw8NBoNNBoN4uPjpfILFy5Ap9NBrVYjNjYWQohH6wUiIpKFUaESFxcHnU6H9u3bAwCqq6tx7949AEBgYGC98yiVSixYsACHDh3Cl19+iS+++AJXrlxBXFwcPD09ceTIEXh6eiIuLg4AkJqaiuzsbBw5cgTLly/HkiVLANSE0MaNG7Fr1y7s3r0bGzdulIJoyZIlWLZsGY4cOYLs7GykpqY+VmcQEdHjMSpUwsLCUFZWJn2+d+8ewsLCGp1HpVJJRzQdO3ZEr169oNfrkZycLAVRYGAgjh07BgBSuUKhgLu7O0pKSpCfn4/09HR4eXnBzs4OnTp1gpeXF9LS0pCfn4/S0lIMHDgQCoUCgYGBSE5OfqROICIieRh1TaW8vBzW1tbSZ2tra+lIxRi5ubnIysrCgAEDcOvWLahUKgA1wVNQUAAA0Ov1cHJykuZxcnKCXq+vU+7o6Fhv+f3pjVmXrKwso9velpSVlbWYvnF1dW3uJrQ5cm37lrQftVRPcx8ZFSpWVla4ePGidORx4cIF6VRYU+7cuYOIiAgsXLgQHTt2bHC6+q6HKBSKhy5viqWlJX+wGpCVlcW+acPk2vbcj5rWGvvI2BA0KlQWLlyI2bNnS0cYv/76K9auXdvkfJWVlYiIiIBOp5NGiDk4OCA/Px8qlQr5+fno3LkzgJojjby8PGnevLw8qFQqODk54fTp01K5Xq/H4MGDG5yeiIiaj1HXVNzc3HDo0CEsWbIEixcvxldffYV+/fo1Oo8QAosWLUKvXr1qXX/x9fVFQkICACAhIQF+fn61yoUQyMjIgI2NDVQqFby9vZGeno7i4mIUFxcjPT0d3t7eUKlUsLa2RkZGBoQQtZZFRETNw+ibH8+fP4/r16/DYDBIh0ENjfwCgO+//x6JiYno3bs3AgICAABRUVGYNm0aIiMjsWfPHnTt2hXr168HAPj4+CAlJQVqtRpWVlZYuXIlAMDOzg4zZ85ESEgIACA8PBx2dnYAakZ/RUdHo6ysDMOHD8fw4cMfoQuIiEguRoXK/PnzkZOTgz59+kCpVAKANOKqIR4eHvjxxx/r/e7+PSsPUigUWLx4cb3Th4SESKHyoP79++PgwYPGrAIRET0BRoXKhQsX8NVXXxl1IZyIiNouo66puLi44NdffzV1W4iIqJUz6kilsLAQWq0Wbm5uaNeunVS+adMmkzWMiIhaH6NCZdasWaZuBxERPQWMCpXBgwfj+vXr+OWXXzBs2DDcu3cPBoPB1G0jIqJWxqhrKrt27UJERARiYmIA1NyAGB4ebtKGERFR62NUqOzYsQM7d+6UHrPSs2dP6ZldRERE9xkVKhYWFrCwsJA+V1VVmaxBRETUehl1TWXQoEHYtGkTysrKcOLECXzxxRfw9fU1dduIiKiVMepIZd68eejcuTN69+6NL7/8Ej4+PoiMjDR124iIqJUx6kjFzMwMr732Gl577TVTt4eIiFoxo0LF19e33ke08E2LRET0IKNCZe/evdLfFRUVOHTokPSeeCIiovuMuqYe3GmeAAATvUlEQVRib28v/efo6IjJkyfj1KlTpm4bERG1MkYdqVy8eFH6u7q6GhcuXMCdO3dM1igiImqdjAqV1atX/2sGc3N0794d69atM1mjiIiodTIqVLZv327qdhAR0VPAqFDZunVro98/+A56IiJqu4x+8+P58+elu+i/+eYbeHh4oGvXriZtHBERtS5Gv6Rr37590gMl3377bcyePRsrVqwwaeOIiKh1MWpI8Y0bN2o9UNLCwgLXr183WaOIiKh1MupIJSAgACEhIVCr1VAoFDh69CgCAwNN3TYiImpljDpSmTFjBlatWgVbW1vY2Nhg1apVmD59eqPzREdHw9PTE2PHjpXKPvzwQ7zyyisICAhAQEAAUlJSpO82b94MtVoNf39/pKWlSeWpqanw9/eHWq1GXFycVJ6Tk4PQ0FBoNBpERkaioqLC6JUmIiLTMCpUAODevXvo2LEj/vSnP8HJyQk5OTmNTj9+/Hhs2bKlTvnkyZORmJiIxMRE+Pj4AACuXLmCpKQkJCUlYcuWLVi6dCkMBgMMBgOWLVuGLVu2ICkpCQcPHsSVK1cAAB988AEmT56MI0eOwNbWFnv27HmY9SYiIhMwKlQ2btyILVu2SEcKlZWVmD9/fqPzDBo0CJ06dTKqEcnJydBqtbCwsICzszN69OiBzMxMZGZmokePHnB2doaFhQW0Wi2Sk5MhhMCpU6fg7+8PAAgKCuLDLYmIWgCjQuXo0aP45JNPYGVlBQBwdHR85Me07NixAzqdDtHR0dJDKfV6PZycnKRpHB0dodfrGywvLCyEra0tzM1rLgk5OTlBr9c/UnuIiEg+Rl2ob9euHRQKhfT4+7t37z5SZRMmTMDMmTOhUCiwfv16rF69GqtWrYIQos60CoUC1dXV9ZbXp6Hy3ysvL0dWVtbDNbyNKCsrazF94+rq2txNaHPk2vYtaT9qqZ7mPjIqVEaPHo2YmBiUlJRg165d2Lt37yO9sKtLly7S36GhodLFficnJ+Tl5Unf6fV6qFQqAKi33N7eHiUlJaiqqoK5uTny8vKk6ZtiaWnJH6wGZGVlsW/aMLm2PfejprXGPjI2BI06/TVlyhT4+/tDo9Hg6tWriIiIwMSJEx+6Ufn5+dLfx44dg4uLC4Cal4AlJSWhoqICOTk5yM7OhpubG/r374/s7Gzk5OSgoqICSUlJ0gvDhgwZgsOHDwMA4uPjpbv9iYio+TR5pGIwGDBlyhT87W9/g5eXl9ELjoqKwunTp1FYWIjhw4dj1qxZOH36NC5dugQA6N69O5YtWwYAcHFxwejRozFmzBgolUrExMRAqVQCAGJiYjB16lQYDAYEBwdLQTR//nzMmTMH69atg6urK0JDQx965YmISF5NhopSqUT79u1x+/Zt2NjYGL3gNWvW1Clr7Id/xowZmDFjRp1yHx8faejxg5ydnTmMmIiohTHqmoqlpSV0Oh2GDRuGDh06SOXvvPOOyRpGREStj1Gh8uqrr+LVV181cVOIiKi1azRUbty4gW7duiEoKOhJtYeIiFqxRkd/hYeHS3/PmjXL5I0hIqLWrdFQefCmxKae9UVERNRoqDx4l7qxd6wTEVHb1eg1lUuXLuHll1+GEALl5eV4+eWXAdQcwSgUCpw9e/aJNJKIiFqHRkPlaX02DRERmYbR71MhIiJqCkOFiIhkw1AhIiLZMFSIiEg2DBUiIpINQ4WIiGTDUCEiItkwVIiISDYMFSIikg1DhYiIZMNQISIi2TBUiIhINgwVIiKSDUOFiIhkY7JQiY6OhqenJ8aOHSuVFRUVISwsDBqNBmFhYSguLgZQ836W2NhYqNVq6HQ6XLx4UZonPj4eGo0GGo0G8fHxUvmFCxeg0+mgVqsRGxtb6y2VRETUPEwWKuPHj8eWLVtqlcXFxcHT0xNHjhyBp6cn4uLiAACpqanIzs7GkSNHsHz5cixZsgRATQht3LgRu3btwu7du7Fx40YpiJYsWYJly5bhyJEjyM7ORmpqqqlWhYiIjGSyUBk0aBA6depUqyw5ORmBgYEAgMDAQBw7dqxWuUKhgLu7O0pKSpCfn4/09HR4eXnBzs4OnTp1gpeXF9LS0pCfn4/S0lIMHDgQCoUCgYGBSE5ONtWqEBGRkZ7oNZVbt25BpVIBAFQqFQoKCgAAer0eTk5O0nROTk7Q6/V1yh0dHestvz89ERE1r0ZfJ/yk1Hc9RKFQPHS5McrLy/ma5AaUlZW1mL5xdXVt7ia0OXJt+5a0H7VUT3MfPdFQcXBwQH5+PlQqFfLz89G5c2cANUcaeXl50nR5eXlQqVRwcnLC6dOnpXK9Xo/Bgwc3OL0xLC0t+YPVgKysLPZNGybXtud+1LTW2EfGhuATPf3l6+uLhIQEAEBCQgL8/PxqlQshkJGRARsbG6hUKnh7eyM9PR3FxcUoLi5Geno6vL29oVKpYG1tjYyMDAghai2LiB5eWaVBtmU9zI+lnPVSy2CyI5WoqCicPn0ahYWFGD58OGbNmoVp06YhMjISe/bsQdeuXbF+/XoAgI+PD1JSUqBWq2FlZYWVK1cCAOzs7DBz5kyEhIQAAMLDw2FnZwegZvRXdHQ0ysrKMHz4cAwfPtxUq0L01GvfTomeC5KeeL3Zq7VPvE4yLZOFypo1a+ot37ZtW50yhUKBxYsX1zt9SEiIFCoP6t+/Pw4ePPh4jSQiIlnxjnoiIpINQ4WIiGTDUCEiItkwVIiISDYMFSIikg1DhYiIZMNQISIi2TBUiIhINgwVIiKSDUOFiIhkw1AhIiLZMFSIiEg2DBUiIpINQ4WIiGTDUKFG8SVKRPQwWsQ76qnl4subiOhh8EiFiIhkw1AhIiLZMFSIiEg2DBUiIpINQ4WIiGTDUCEiItkwVIiISDbNcp+Kr68vrK2tYWZmBqVSiX379qGoqAhz5szB9evX0b17d6xbtw6dOnWCEAIrVqxASkoK2rdvj9WrV6Nv374AgPj4eHzyyScAgBkzZiAoKKg5VoeIiP6/ZjtS2bZtGxITE7Fv3z4AQFxcHDw9PXHkyBF4enoiLi4OAJCamors7GwcOXIEy5cvx5IlSwAARUVF2LhxI3bt2oXdu3dj48aNKC4ubq7VISIitKDTX8nJyQgMDAQABAYG4tixY7XKFQoF3N3dUVJSgvz8fKSnp8PLywt2dnbo1KkTvLy8kJaW1pyrQETU5jXbY1qmTJkChUKB119/Ha+//jpu3boFlUoFAFCpVCgoKAAA6PV6ODk5SfM5OTlBr9fXKXd0dIRer2+y3vLycmRlZcm8Nk+HsrKyOn3j6uraTK2htqIt/nus79/a06JZQmXnzp1wdHTErVu3EBYWhl69ejU4rRCiTplCoWiwvCmWlpb8oWxAVlYW+4aeuLa4z7XGf2vGhmCznP5ydHQEADg4OECtViMzMxMODg7Iz88HAOTn56Nz584Aao5M8vLypHnz8vKgUqnqlOv1eulIh4iImscTD5W7d++itLRU+vvEiRNwcXGBr68vEhISAAAJCQnw8/MDAKlcCIGMjAzY2NhApVLB29sb6enpKC4uRnFxMdLT0+Ht7f2kV4eIiB7wxE9/3bp1C+Hh4QAAg8GAsWPHYvjw4ejfvz8iIyOxZ88edO3aFevXrwcA+Pj4ICUlBWq1GlZWVli5ciUAwM7ODjNnzkRISAgAIDw8HHZ2dk96dYiI6AFPPFScnZ2xf//+OuX29vbYtm1bnXKFQoHFixfXu6yQkBApVIiIqPm1mCHFRETU+jFUiIhINgwVIiKSDUOFiIhkw1AhIiLZMFSIiEg2DBUiIpINQ4WIiGTDUCEiItkwVIiISDYMFSIikg1DhYiIZMNQISIi2TBUiKjZlFUa2lS9bUGzvaOeiKh9OyV6Lkh64vVmr9Y+8TrbCh6pEBGRbBgqREQkG4YKERHJhqFCRESyYai0Ak9qpIqrq+sTqYeInl4c/dUKNNcIGYCjZIjo4fBIhYiIZNPqQyU1NRX+/v5Qq9WIi4tr7uYQEbVprTpUDAYDli1bhi1btiApKQkHDx7ElStXmrtZRERtVqsOlczMTPTo0QPOzs6wsLCAVqtFcnKyyerjox2Ing7N+W/5af8dUQghRHM34lH97//+L9LS0rBixQoAQEJCAjIzMxETE9PgPBkZGbC0tHxSTSQieiqUl5fD3d29yela9eiv+vJQoVA0Oo8xnUJERI+mVZ/+cnJyQl5envRZr9dDpVI1Y4uIiNq2Vh0q/fv3R3Z2NnJyclBRUYGkpCT4+vo2d7OIiNqsVn36y9zcHDExMZg6dSoMBgOCg4Ph4uLS3M0iImqzWvWFeiIialla9ekvIiJqWRgqREQkG4ZKK3Tz5k1MnDgRo0ePhlarxbZt26Tvtm/fDn9/f2i1Wrz//vtS+ebNm6FWq+Hv74+0tDSpvKHH3OTk5CA0NBQajQaRkZGoqKgAAFRUVCAyMhJqtRqhoaHIzc1tso7m0lA/ZWVl4bXXXkNAQADGjx+PzMxMADVD1GNjY6FWq6HT6XDx4kVpWfHx8dBoNNBoNIiPj5fKL1y4AJ1OB7VajdjYWGmYe1FREcLCwqDRaBAWFobi4uIm62gO5eXlCAkJwbhx46DVarFhwwYA8m5/Ofex5tBQH82dOxf+/v4YO3YsoqOjUVlZCaBt7ke1CGp19Hq9uHDhghBCiNu3bwuNRiMuX74sTp48Kf70pz+J8vJyIYQQv/32mxBCiMuXLwudTifKy8vFtWvXhJ+fn6iqqhJVVVXCz89PXLt2TZSXlwudTicuX74shBAiIiJCHDx4UAghxLvvvit27NghhBDi888/F++++64QQoiDBw+K2bNnN1pHc2qon8LCwsTx48eFEEIcP35cvPnmm9LfU6ZMEdXV1eLcuXMiJCRECCFEYWGh8PX1FYWFhaKoqEj4+vqKoqIiIYQQwcHB4uzZs6K6ulpMmTJFWu57770nNm/eLIQQYvPmzeL9999vtI7mUl1dLUpLS4UQQlRUVIiQkBBx7tw52ba/nPtYc2moj44fPy6qq6tFdXW1mDNnjtT+trgfPYhHKq2QSqVC3759AQAdO3ZEr169oNfrsXPnTkybNg0WFhYAAAcHBwBAcnIytFotLCws4OzsjB49eiAzM7PBx9wIIXDq1Cn4+/sDAIKCgqTH33z99dcICgoCAPj7++PkyZMQQjRYR3NqqJ8UCgXu3LkDALh9+7Z0b1NycjICAwOhUCjg7u6OkpIS5OfnIz09HV5eXrCzs0OnTp3g5eWFtLQ05Ofno7S0FAMHDoRCoUBgYKDUT/eXBQCBgYE4duxYo3U0F4VCAWtrawBAVVUVqqqqoFAoZNv+cu5jzaWhPvLx8YFCoYBCoYCbmxv0ej2AtrkfPYih0srl5uYiKysLAwYMQHZ2Nr777juEhobizTfflH7U9Xo9nJycpHkcHR2h1+sbLC8sLIStrS3MzWtGnDs5OUn/YPR6Pbp27QqgZki3jY0NCgsLG1xWS/FgPy1cuBDvv/8+fHx88N577yEqKgpA3X66v97G9t+D/XTr1i0prFQqFQoKChqtozkZDAYEBARg2LBhGDZsGJydnWXb/nLuY83p9300YMAA6bvKykokJibilVdeAdB296P7GCqt2J07dxAREYGFCxeiY8eOMBgMKCkpwa5du/Cf//mfiIyMhBCiwcfZNFRen/vlcizrSft9P+3cuRPR0dFISUlBdHQ0Fi1aBODh1+1R1rkl9pNSqURiYiJSUlKQmZmJn3/+uc40j7r95dzHmtPv++inn36Svlu6dCk8PDzg4eEBoO3uR/cxVFqpyspKREREQKfTQaPRAKj5Px+1Wi0djpuZmaGwsLDBx9k0VG5vb4+SkhJUVVUBAPLy8qT/W3JycsLNmzcB1JwKuH37Nuzs7FrsI3Pq66f7F0sBYPTo0dIR3e/X4f56G9t/D/aTg4ODdDoiPz8fnTt3brSOlsDW1hZDhgxBRkaGbNtfzn2sJbjfR/cHImzcuBEFBQWIjo6Wpmnr+xFDpRUSQmDRokXo1asXwsLCpPKRI0fi1KlTAICrV6+isrIS9vb28PX1RVJSEioqKpCTk4Ps7Gy4ubk1+JgbhUKBIUOG4PDhwwBqfoTvP/7G19dXGrVy+PBhDB06FAqFosE6mlND/aRSqXD69GkAwKlTp9CzZ08ANeuWkJAAIQQyMjJgY2MDlUoFb29vpKeno7i4GMXFxUhPT4e3tzdUKhWsra2RkZEBIQQSEhLg5+dXa1kA6i3/fR3NpaCgACUlJQCAsrIyfPvtt3jhhRdk2/5y7mPNpb4+6tWrF3bv3o309HSsWbMGZmb/+ilti/tRLU9iNADJ68yZM6J3795i7NixYty4cWLcuHHi+PHjory8XMydO1dotVoRGBgovv32W2mejz/+WPj5+QmNRiONLBGiZhSJRqMRfn5+4uOPP5bKr127JoKDg8XIkSPFrFmzpBFlZWVlYtasWWLkyJEiODhYXLt2rck6mktD/XTmzBkRFBQkdDqdCAkJEefPnxdC1IzyWbJkifDz8xNjx44VmZmZ0rJ2794tRo4cKUaOHCn27NkjlWdmZgqtViv8/PzE0qVLRXV1tRBCiIKCAjFp0iShVqvFpEmTRGFhYZN1NIesrCwREBAgxo4dK7Rarfjwww+FEPJufzn3sebQUB+5uroKPz8/ad+6X94W96MH8TEtREQkG57+IiIi2TBUiIhINgwVIiKSDUOFiIhkw1AhIiLZMFSIiEg2DBUiIpLN/wMNk7TxRbyGJQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f6e78faeac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.plot(kind='hist', title='Commissions Distribution')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Total_Commissions</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1.000000e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.832281e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>9.620470e+04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>2.447500e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.766750e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>2.831250e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>2.896500e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>3.279750e+06</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Total_Commissions\n",
       "count       1.000000e+05\n",
       "mean        2.832281e+06\n",
       "std         9.620470e+04\n",
       "min         2.447500e+06\n",
       "25%         2.766750e+06\n",
       "50%         2.831250e+06\n",
       "75%         2.896500e+06\n",
       "max         3.279750e+06"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
